package com.cxh.util.json;

import java.util.Date;
import com.cxh.util.CommonUtility;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;


/**
 * 
 * @描述： JSON格式数据转换
 * 
 */
public class JSONUtil{
    
    /** 事件格式 */
    public static final String EVENTJS = "'eventinfo'";
    
    public static final String[] dateFormats = new String[]
    { "yyyy-MM-dd HH:mm:ss" };
    public static final String[] dateFormats_1 = new String[]
    { "yyyy-MM-dd HH:mm" };
    
    public static final String dataFormat = "yyyy-MM-dd HH:mm:ss";
    
   
    /**
      * @描述：转换List对象JSON格式 仅支持layui.table使用
      * @作者：YangHL 
      * @创建时间：2018年6月27日 上午10:56:16   
      * @修改人：  
      * @修改时间：  
      * @修改备注：   
      * @version
     */
    public static String toLayUIJSONAll(long total, Object obj,JsonConfig jsonConfig){
    	String json ="";
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", 0);
        jsonObject.put("count", total);
        jsonObject.put("msg", "");
        jsonObject.put("data", JSONArray.fromObject(obj, jsonConfig));
        json = jsonObject.toString();
        return json;
    }
    
    public static String toLayUIJSONAllAuto(Object obj, JsonConfig jsonConfig){  
    	String json = null;
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", 0);
        jsonObject.put("type", "success");
        jsonObject.put("content", JSONArray.fromObject(obj, jsonConfig));
        json = jsonObject.toString();
        return json;
    }
 
    /**
     * @描述: TODO获得json的对象,
     */
    public static JsonConfig getJsonConfig(String dateFormat)
    {
        JsonConfig conf = new JsonConfig();
        // //添加转换的字段
        JsonDateValueProcessor jdp = new JsonDateValueProcessor();
        if (!CommonUtility.isEmpty(dateFormat))
            jdp.setFormat(dateFormat);
        conf.registerJsonValueProcessor(Date.class, jdp);
        
        return conf;
    } 
}
